package com.cjk.ssm.mapper;

import com.cjk.ssm.entity.Department;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 部门 -- 持久层
 */
@Repository
public interface DepartmentMapper {
    /**
     * 添加一条记录
     * 只添加部门名称，id自动生成
     *
     * @param department
     * @return
     */
    boolean add(Department department);

    /**
     * 添加一条记录
     * 用户名和id,动态添加
     *
     * @param department
     * @return
     */
    boolean addAll(Department department);

    /**
     * 根据id，删除一条记录
     *
     * @param id
     * @return
     */
    boolean del(Integer id);

    /**
     * 删除多条记录
     *
     * @param ids
     * @return
     */
    // @Param:多个参数、动态sql、 ${}拼接的方式取值
    boolean delOneOrMore(@Param("ids") Integer[] ids);
    //boolean delOneOrMore(@Param("ids") Integer... ids);

    /**
     * 修改操作
     *
     * @param department
     * @return
     */
    boolean upd(Department department);

    /**
     * 查找所有
     *
     * @return
     */
    List<Department> findAll();

    /**
     * 根据id查找部门信息
     *
     * @param
     * @return
     */
    Department findById(Integer id);

    /**
     * 根据姓名模糊查找
     *
     * @param name
     * @return
     */
    List<Department> findByDeptNameLike(String name);

    /**
     * 综合查找
     *
     * @param department
     * @return
     */
    List<Department> findByCondition(Department department);
}
